#!/bin/bash
set -e

# 参数
# RuntimeTracker 导出的 LWG 特征 CSV 目录（通过 EXPORT_LWG_FEATURES 生成）
DUMP_DIR="/home/liuyonghui/code/MA-MOTIP/outputs/motip_smd_only_memory_calibration_smd_eval/lwg_dump/"
DATA_ROOT="/home/liuyonghui/datasets"
OUT_CSV="/home/liuyonghui/outputs/lwg_smd/lwg_train_smd.csv"
OUT_MODEL="/home/liuyonghui/outputs/lwg_smd/lwg_model_smd.pt"
K=20
M=8
IOU_THRESH=0.5
EPOCHS=20
BATCH_SIZE=1024
LR=0.001
VAL_RATIO=0.1

echo "=============================="
echo "1. 生成 LWG 训练数据 CSV"
echo "=============================="
python3 build_dataset.py \
    --dump-dir "$DUMP_DIR" \
    --data-root "$DATA_ROOT" \
    --split val \
    --out-path "$OUT_CSV" \
    --K $K \
    --M $M \
    --iou-thresh $IOU_THRESH

echo "=============================="
echo "2. 训练 LWG 模型"
echo "=============================="
# 如果输出模型已存在，先备份以保留旧版本
if [ -f "$OUT_MODEL" ]; then
    BACKUP_PATH="${OUT_MODEL%.*}_backup_$(date +%Y%m%d_%H%M%S).${OUT_MODEL##*.}"
    echo "检测到已存在的模型：$OUT_MODEL"
    echo "备份旧模型到：$BACKUP_PATH"
    cp "$OUT_MODEL" "$BACKUP_PATH"
fi

python3 train_lwg.py \
    --train_csv "$OUT_CSV" \
    --out_model "$OUT_MODEL" \
    --epochs $EPOCHS \
    --batch_size $BATCH_SIZE \
    --lr $LR

echo "=============================="
echo "完成 LWG 训练，模型保存为 $OUT_MODEL"
echo "=============================="
